<?php
require 'Processing/Foresee/foresee_processing.php';

/* Loading elements */
if ($_GET && array_key_exists('saved', $_GET)) {
    $id = intval($_GET['saved']);
    require 'foresee_content.php';
    $result = ForeseeDiagrams::get_saved($id);
    if ($result) {
        list($name, $value) = $result;
        $saved_request = unserialize($value);
        $name = htmlspecialchars($name);
        if ($name) {
            add_success("Rodoma išsaugota prognozė <i>$name</i>");
            $ssl = array_key_exists('REDIRECT_HTTPS', $_SERVER) ? 'https://' : 'http://';
            $link = $ssl . $_SERVER['HTTP_HOST'] . $_SERVER["REQUEST_URI"];
            $link = htmlspecialchars($link);
            add_success("Šią prognozę taip pat galite pasiekti pasinaudoję nuoroda: <pre>$link</pre>");
        } else {
            add_success("Rodoma paskutinė naudota prognozė");
        }
        $saved_id = $id;
    } else {
        add_warning("Išsaugota prognozė pagal įvestą numerį nebuvo rasta. Prognozė galėjo būti ištrinta arba padaryta klaida adreso laukelyje");
    }
}

/* Loading request */
if (isset($saved_request)) {
    $request = $saved_request;
} else if ($_POST && array_key_exists('new_measure', $_POST)) {
    $request = $_POST;
} else {
    $request = array();
}
$hasData = false;
if ($request) {
    foreach($request["new_measure"] as $key => $value) {
	if($value != "") {
	    $hasTempData = false;
	    foreach($request["subdivision"][$key] as $key2 => $value2) {
		if (intval($value2) < 0) {
                    add_warning('Neigiama <i>' . htmlspecialchars($value) . '</i> padalinio <i>' . htmlspecialchars($key2) . '</i> reikšmė <i>' . htmlspecialchars($value2) . '</i> paversta į 0');
                    $request["subdivision"][$key][$key2] = 0;
                } else if ($value2 !== '' && !is_numeric($value2)) {
                    add_warning('Neskaitinė <i>' . htmlspecialchars($value) . '</i> padalinio <i>' . htmlspecialchars($key2) . '</i> reikšmė <i>' . htmlspecialchars($value2) . '</i> paversta į 0');
                    $request["subdivision"][$key][$key2] = 0;
                } else if($value2 != "") {
		    $hasTempData = true;
                }
	    }
	    foreach($request["administrated"][$key] as $key2 => $value2) {
		if (intval($value2) < 0) {
                    add_warning('Neigiama <i>' . htmlspecialchars($value) . '</i> laikotarpio <i>' . htmlspecialchars($key2) . '</i> reikšmė <i>' . htmlspecialchars($value2) . '</i> paversta į 0');
                    $request["administrated"][$key][$key2] = 0;
                } else if ($value2 !== '' && !is_numeric($value2)) {
                    add_warning('Neskaitinė <i>' . htmlspecialchars($value) . '</i> laikotarpio <i>' . htmlspecialchars($key2) . '</i> reikšmė <i>' . htmlspecialchars($value2) . '</i> paversta į 0');
                } else if($value2 != "" && $hasTempData) {
		    $hasData = true;
                }

	    }
	}
    }
}
if(!$hasData && !empty($_POST['new_measure'])) add_error("Truksta duomenų. Reikia pavadinimo, bent vieno padalinio ir bent vienu laikotarpiu suadministruotų paraiškų.");

/* Deleting */
if ($_GET && array_key_exists('delete', $_GET)) {
    $id = intval($_GET['delete']);
    $sql_result = DB::query("SELECT name FROM foresee_hystory WHERE id = $id");
    $result = DB::row($sql_result);
    list($name) = $result;
    $name = htmlspecialchars($name);
    if ($id && $name && $result) {
        ForeseeData::deleteForesee($id);
        add_success("Prognozė $name ištrinta");
    } else if ($name == null) {
        add_warning("paskutinės naudotos prognozės ištrinti negalima");
    } else {
        add_warning("Neapvyko ištrinti prognozės. Ji galėjo būti jau ištrinta arba neteisingai įvestas jos numeris");
    }
}

require_once 'foresee_content.php';

/* Other commands */
$save_command = $_POST && array_key_exists('foresee_value', $_POST);
$diagrams_command = $_POST && array_key_exists('new_measure', $_POST);

/* Saving last prediction */
if ($diagrams_command) {
    ForeseeData::saveLastPrediction($_POST);
}

/* Showing menu */
if ($save_command || $diagrams_command || ForeseeData::hasSavedElements()) {
    MainDesign::leftSubmenuBeginning("Prognozės");

    /* Svaing elements */
    if ($save_command) {
        $value = $_POST['foresee_value'];
        $saved_request = unserialize($value);
        $name = $_POST['foresee_name'];
        if (!$name) {
            $name = date('Y-m-d H:i');
        }
        if (ForeseeData::saveForesee($name, $value)) {
            $name = htmlspecialchars($name);
            add_success("Prognozės $name parametrai išsaugoti");
        } else {
            add_warning("Prognozės $name parametrų nepavyko išsaugoti");
        }
    }

    /* Showing list of all saved elements */
    $sql_result = DB::query("SELECT id, `name`, `date`, `value` FROM foresee_hystory ORDER BY date DESC");
    $first = true;
    while (list($id, $name, $date, $value) = DB::row($sql_result)) {
        if ($first) {
            MainDesign::leftSideMenuText('<h3>Išsaugotos prognozės</h3><ul>');
            $first = false;
        }
        $is_last_seassion = ($name === null);
        $name = htmlspecialchars($name);
        $date = htmlspecialchars($date);
        $id = intval($id);
        if ($is_last_seassion) {
            MainDesign::leftSideMenuText("<li title='Prognozė išsaugota $date' class='last_saved'><a href='?tab=foresee&saved=$id'>Paskutinė naudota</a></li>");
            $last_saved_id = $id;
        } else {
            MainDesign::leftSideMenuText("<li><a title=\"Ištrinti $name\" href='?tab=foresee&delete=$id' class='delete_prediction'>x</a><a title='Prognozė išsaugota $date' href='?tab=foresee&saved=$id'>$name</a></li>");
        }
    }
    if (!$first) {
        MainDesign::leftSideMenuText('</ul>');
    }

    /* Form to save elements */
    if ($diagrams_command && $hasData) {
        $value = htmlspecialchars(serialize($_POST));
        ob_start();
        ?>
        <h3>Išsaugoti dabartinę</h3>
        <form method="post" action="#">
            <label for="foresee_name">Pavadinimas:</label><br/>
            <input name="foresee_name" id="foresee_name"/><br/>
            <input type="hidden" name="foresee_value" value="<?=$value;?>"/>
            <input type="submit" value="Išsaugoti prognozę"/>
        </form>

        <?php
        MainDesign::leftSideMenuText(ob_get_clean());
    }
    MainDesign::leftSubmenuEnding();
}
